package com.tjec.project.businessWorkbench.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tjec.framework.aspectj.lang.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

import com.tjec.framework.web.domain.BaseEntity;
import com.tjec.project.projectWorkbench.domain.BmsAgencyNo;
import com.tjec.project.projectWorkbench.domain.BmsCostNo;
import com.tjec.project.projectWorkbench.domain.BmsReportNo;

import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

/**
 * 业务一览对象 bms_business
 * 
 * @author pangyongfeng
 * @date 2020-04-20
 */
public class BmsBusiness extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id 主键 */
    @JsonIgnore
    private String id;

    /** 项目ID */
    @ApiModelProperty(value = "项目ID")
    private String projectId;

    /** 业务名称 */
    @ApiModelProperty(value = "业务名称")
    private String name;

    /** 业务状态（从基础数据获取） */
    @ApiModelProperty(value = "业务状态")
    private String status;

    /** 状态说明 */
    @ApiModelProperty(value = "状态说明")
    private String statusRemark;

    /** 业务类别 **/
    @ApiModelProperty(value = "业务类别")
    private String businessCategoryId;

    /** 归档模板 */
    @ApiModelProperty(value = "归档模板")
    private String archiveTemplateId;

    /** 归档状态（0未归档，1已归档） */
    @ApiModelProperty(value = "归档状态")
    private String archiveStatus;

    /** 招标组组长 */
    @ApiModelProperty(value = "招标组组长")
    private String tenderLeader;

    /** 招标组组员，多个成员用英文分号";"分隔 */
    @ApiModelProperty(value = "招标组组员，多个成员用英文分号;分隔")
    private String tenderMember;

    /** 业务编号 */
    @ApiModelProperty(value = "业务编号:生成规则当前时间yyyyMMdd+随机4位数,eg:202007230001")
    private String sectionNumber;
    

    /** guid */
    @ApiModelProperty(value = "guid")
    private String guid;

    /** 开始时间 */
    @ApiModelProperty(value = "开始时间")
    private Date businessStartTime;

    /** 完成时间 */
    @ApiModelProperty(value = "完成时间")
    private Date businessEndTime;
    
    /** 项目名称 */
    @ApiModelProperty(value = "项目名称")
    private String projectName;
    
    /** 项目负责人 */
    @ApiModelProperty(value = "项目负责人")
    private String projectLeader;
    
    /** 项目经理 */
    @ApiModelProperty(value = "项目经理")
    private String projectManager;
    
    /** 项目经理 */
    @ApiModelProperty(value = "业务类别")
    private String menuName;

    /** 招标组组员集合*/
    @ApiModelProperty(value = "招标组组员集合")
    private String[] tenderMembers;

    /** 归档模板 */
    @ApiModelProperty(value = "归档模板名称")
    private String archiveTemplateName;
    
    /**原有全部报告类别**/
    private String oldReportType;
    
    //报告号类型
    private String reportNoApply;
    
    //咨询报告号集合
    private List<BmsReportNo> reportList;
    
    //招标代理号集合
    private List<BmsAgencyNo> agencyList;
    
    //造价报告号集合
    private List<BmsCostNo> costList;
    
    //报告号查询字段
    private String searchReportNo;
    
    //报告名称查询字段
    private String searchReportName;
    
    //盖章日期查询
    private Date searchStampTimeBegin;
    private Date searchStampTimeEnd;
    
    private String agencyNo;
    private String sectionName;
    private String agencyStampTime;
    //报告类型
    private String reportType;

    //报告类型数量（0、1、大于1）
    private String reportTypeCounts;
    
    //书面归档状态，书面归档状态（0未归档，1已归档，2归档中）
    private String writtenArchiveStatus;
    
    //迁移状态（0未迁移，1迁移中）
    private String moveStatus;
    
    //作废状态（0正常，1作废）
    private String cancelStatus;
    
    private String operPerson;
    
    private String operPersonNo;
    
    private String statusName;
    
    private String tenderLeaderName;
    
    private String tenderMemberNames;

    public String getReportTypeCounts() {
        return reportTypeCounts;
    }

    public void setReportTypeCounts(String reportTypeCounts) {
        this.reportTypeCounts = reportTypeCounts;
    }

    public String getAgencyNo() {
		return agencyNo;
	}

	public void setAgencyNo(String agencyNo) {
		this.agencyNo = agencyNo;
	}

	public String getSectionName() {
		return sectionName;
	}

	public void setSectionName(String sectionName) {
		this.sectionName = sectionName;
	}

	public String getAgencyStampTime() {
		return agencyStampTime;
	}

	public void setAgencyStampTime(String agencyStampTime) {
		this.agencyStampTime = agencyStampTime;
	}

	public String getSearchReportNo() {
		return searchReportNo;
	}

	public void setSearchReportNo(String searchReportNo) {
		this.searchReportNo = searchReportNo;
	}

	public String getSearchReportName() {
		return searchReportName;
	}

	public void setSearchReportName(String searchReportName) {
		this.searchReportName = searchReportName;
	}

	public Date getSearchStampTimeBegin() {
		return searchStampTimeBegin;
	}

	public void setSearchStampTimeBegin(Date searchStampTimeBegin) {
		this.searchStampTimeBegin = searchStampTimeBegin;
	}

	public Date getSearchStampTimeEnd() {
		return searchStampTimeEnd;
	}

	public void setSearchStampTimeEnd(Date searchStampTimeEnd) {
		this.searchStampTimeEnd = searchStampTimeEnd;
	}

	public List<BmsReportNo> getReportList() {
		return reportList;
	}

	public void setReportList(List<BmsReportNo> reportList) {
		this.reportList = reportList;
	}

	public List<BmsAgencyNo> getAgencyList() {
		return agencyList;
	}

	public void setAgencyList(List<BmsAgencyNo> agencyList) {
		this.agencyList = agencyList;
	}

	public List<BmsCostNo> getCostList() {
		return costList;
	}

	public void setCostList(List<BmsCostNo> costList) {
		this.costList = costList;
	}

	/**已使用类别**/
    private String nowReportType;
    
    /**已使用类别**/
    private List<String> reportTypes;

    private String tenderMemberFlag;

    private String userId;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getTenderMemberFlag() {
        return tenderMemberFlag;
    }

    public void setTenderMemberFlag(String tenderMemberFlag) {
        this.tenderMemberFlag = tenderMemberFlag;
    }

    public String getOldReportType() {
		return oldReportType;
	}

	public void setOldReportType(String oldReportType) {
		this.oldReportType = oldReportType;
	}

	public String getNowReportType() {
		return nowReportType;
	}

	public void setNowReportType(String nowReportType) {
		this.nowReportType = nowReportType;
	}

    public String getArchiveTemplateName() {
        return archiveTemplateName;
    }

    public void setArchiveTemplateName(String archiveTemplateName) {
        this.archiveTemplateName = archiveTemplateName;
    }

    public String[] getTenderMembers() {
        return tenderMembers;
    }

    public void setTenderMembers(String[] tenderMembers) {
        this.tenderMembers = tenderMembers;
    }

    public String getMenuName() {
		return menuName;
	}

	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}

	public String getProjectLeader() {
		return projectLeader;
	}

	public void setProjectLeader(String projectLeader) {
		this.projectLeader = projectLeader;
	}

	public String getProjectManager() {
		return projectManager;
	}

	public void setProjectManager(String projectManager) {
		this.projectManager = projectManager;
	}

	public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }
    public void setProjectId(String projectId) 
    {
        this.projectId = projectId;
    }

    public String getProjectId() 
    {
        return projectId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setStatusRemark(String statusRemark) 
    {
        this.statusRemark = statusRemark;
    }

    public String getStatusRemark() 
    {
        return statusRemark;
    }
    public void setBusinessCategoryId(String businessCategoryId) 
    {
        this.businessCategoryId = businessCategoryId;
    }

    public String getBusinessCategoryId() 
    {
        return businessCategoryId;
    }
    public void setArchiveTemplateId(String archiveTemplateId) 
    {
        this.archiveTemplateId = archiveTemplateId;
    }

    public String getArchiveTemplateId() 
    {
        return archiveTemplateId;
    }
    public void setArchiveStatus(String archiveStatus) 
    {
        this.archiveStatus = archiveStatus;
    }

    public String getArchiveStatus() 
    {
        return archiveStatus;
    }
    public void setTenderLeader(String tenderLeader) 
    {
        this.tenderLeader = tenderLeader;
    }

    public String getTenderLeader() 
    {
        return tenderLeader;
    }
    public void setTenderMember(String tenderMember) 
    {
        this.tenderMember = tenderMember;
    }

    public String getTenderMember() 
    {
        return tenderMember;
    }
    public void setSectionNumber(String sectionNumber) 
    {
        this.sectionNumber = sectionNumber;
    }

    public String getSectionNumber() 
    {
        return sectionNumber;
    }
   
    public void setGuid(String guid) 
    {
        this.guid = guid;
    }

    public String getGuid() 
    {
        return guid;
    }
    public void setBusinessStartTime(Date businessStartTime) 
    {
        this.businessStartTime = businessStartTime;
    }

    public Date getBusinessStartTime() 
    {
        return businessStartTime;
    }
    public void setBusinessEndTime(Date businessEndTime) 
    {
        this.businessEndTime = businessEndTime;
    }

    public Date getBusinessEndTime() 
    {
        return businessEndTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("name", getName())
            .append("status", getStatus())
            .append("statusRemark", getStatusRemark())
            .append("businessCategoryId", getBusinessCategoryId())
            .append("archiveTemplateId", getArchiveTemplateId())
            .append("archiveStatus", getArchiveStatus())
            .append("tenderLeader", getTenderLeader())
            .append("tenderMember", getTenderMember())
            .append("sectionNumber", getSectionNumber())
            .append("projectName", getProjectName())
            .append("menuName", getMenuName())
            .append("projectLeader", getProjectLeader())
            .append("projectManager", getProjectManager())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("guid", getGuid())
            .append("nowReportType", getNowReportType())
            .append("oldReportType", getOldReportType())
            .append("businessStartTime", getBusinessStartTime())
            .append("businessEndTime", getBusinessEndTime())
            .append("reportTypes",getReportTypes())
            .append("reportList",getReportList())
            .append("agencyList",getAgencyList())
            .append("costList",getCostList())
            .append("reportNoApply",getReportNoApply())
            .append("searchReportNo",getSearchReportNo())
            .append("searchReportName",getSearchReportName())
            .append("searchStampTimeBegin",getSearchStampTimeBegin())
            .append("searchStampTimeEnd",getSearchStampTimeEnd())
            .append("agencyNo",getAgencyNo())
            .append("sectionName",getSectionName())
            .append("agencyStampTime",getAgencyStampTime())
            .append("reportType",getReportType())
            .append("writtenArchiveStatus",getWrittenArchiveStatus())
            .append("moveStatus",getMoveStatus())
            .append("cancelStatus",getCancelStatus())
            .append("operPerson",getOperPerson())
            .append("operPersonNo",getOperPersonNo())
            .append("statusName",getStatusName())
            .append("tenderLeaderName",getTenderLeaderName())
            .append("tenderMemberNames",getTenderMemberNames())
            .toString();
    }
    
	public String getProjectName() {
		return projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	public List<String> getReportTypes() {
		return reportTypes;
	}

	public void setReportTypes(List<String> reportTypes) {
		this.reportTypes = reportTypes;
	}

	public String getReportNoApply() {
		return reportNoApply;
	}

	public void setReportNoApply(String reportNoApply) {
		this.reportNoApply = reportNoApply;
	}

	public String getReportType() {
		return reportType;
	}

	public void setReportType(String reportType) {
		this.reportType = reportType;
	}

	public String getWrittenArchiveStatus() {
		return writtenArchiveStatus;
	}

	public void setWrittenArchiveStatus(String writtenArchiveStatus) {
		this.writtenArchiveStatus = writtenArchiveStatus;
	}

	public String getMoveStatus() {
		return moveStatus;
	}

	public void setMoveStatus(String moveStatus) {
		this.moveStatus = moveStatus;
	}

	public String getCancelStatus() {
		return cancelStatus;
	}

	public void setCancelStatus(String cancelStatus) {
		this.cancelStatus = cancelStatus;
	}

	public String getOperPerson() {
		return operPerson;
	}

	public void setOperPerson(String operPerson) {
		this.operPerson = operPerson;
	}

	public String getOperPersonNo() {
		return operPersonNo;
	}

	public void setOperPersonNo(String operPersonNo) {
		this.operPersonNo = operPersonNo;
	}

	public String getStatusName() {
		return statusName;
	}

	public void setStatusName(String statusName) {
		this.statusName = statusName;
	}

	public String getTenderLeaderName() {
		return tenderLeaderName;
	}

	public void setTenderLeaderName(String tenderLeaderName) {
		this.tenderLeaderName = tenderLeaderName;
	}

	public String getTenderMemberNames() {
		return tenderMemberNames;
	}

	public void setTenderMemberNames(String tenderMemberNames) {
		this.tenderMemberNames = tenderMemberNames;
	}

	
}
